home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 130_01 / makelib.c < prev    next >
Text File  |  1985-03-09  |  3KB  |  285 lines

  1.  
  2.  
  3.  
  4. gotoxy( y, x )
  5.  
  6. char y, x ;
  7. {
  8. unsigned z ;
  9. char *p, a ;
  10.  
  11. if(x > 15 && y > 47)return( 0 );
  12.  
  13. p = 0xfc02 ; z = *p++ ; z += (*p << 8) ;
  14. p = z ;
  15. if(*p == 0x7f)*p = ' ';
  16.  
  17. p = 0xfc04 ;
  18. *p++ = x ;
  19. p++ ;
  20. *p = y ;
  21.  
  22. p = 0xfc02 ;
  23.  
  24. if(x == 0){
  25.     *p++ = 0xca + y ;
  26.     *p = 0xfb ;
  27.     z = 0xfbca + y ;
  28.     p = z ; *p = 0x7f ;
  29.         }
  30. else {
  31.     z = 0xf80a ;
  32.         a = 1 ;
  33.     while(a++ < x)z += 64 ;
  34.     z += y ;
  35.     *p++ = z & 0x00ff ;
  36.     *p = z >> 8 ;
  37.     p = z ;
  38.     *p = 0x7f ;
  39.      }
  40.  
  41. return( 1 );
  42.  
  43. }
  44.  
  45.  
  46.  
  47. clrplot()
  48. {
  49. char *p ;
  50. putchar( 0x0c ) ; p = 0xfbca ; *p = ' ' ;
  51. }
  52.  
  53.  
  54.  
  55. plot( x, y, c )
  56.  
  57. char x,y,c ;
  58.  
  59. {
  60.  
  61. char a,b,*p ;
  62. unsigned z ;
  63.  
  64. if(x > 15 || y > 47)return( 0 );
  65.  
  66. if(x == 0)
  67. { p = 0xfbca + y ; *p = c ; }
  68. else {
  69.     p = 0xf80a + y ;
  70.     a = 1 ;
  71.     while(a++ < x)p += 64 ;
  72.     *p = c ;
  73.      }
  74.  
  75. return( 1 );
  76.  
  77. }
  78.  
  79.  
  80.  
  81. txtplot( string, x, y, ropt )
  82.  
  83. char *string, x, y, ropt ;
  84.  
  85. {
  86.  
  87. char a, *p ;
  88. unsigned z ;
  89.  
  90. if(x > 15 || y > 47)return( 0 );
  91.  
  92. if(x == 0)
  93. { p = 0xfbca + y ; scp( p, string ); }
  94. else {
  95.     p = 0xf80a + y ;
  96.     a = 1 ;
  97.     while(a++ < x)p += 64 ;
  98.     scp( p, string );
  99.      }
  100.  
  101. return( 1 );
  102.  
  103. }
  104.  
  105.  
  106. setplot( base, xsize, ysize )
  107.  
  108. char *base, xsize, ysize ;
  109. {
  110.     return(1);
  111. }
  112.  
  113.  
  114.  
  115.  
  116. scp( to, from )
  117.  
  118. char *to, *from ;
  119.  
  120. {
  121.  
  122. char c ;
  123.  
  124. c = *from++ ;
  125. while(c != 0)
  126. { *to++ = c ;
  127.   c = *from++ ;
  128. }
  129.  
  130. }
  131.  
  132.  
  133. reverse( s )
  134.  
  135. char s[];
  136.  
  137.  
  138. int c, i, j ;
  139.  
  140. for(i = 0, j = strlen( s ) - 1 ; i < j ; i++, j-- )
  141. { c = s[i] ; s[i] = s[j] ; s[j] = c ; }
  142.  
  143. }
  144.  
  145.  
  146. b2asc( c )
  147.  
  148. char c ;
  149.  
  150. {
  151.  
  152. c += '0' ;
  153. if(c > '9')c += 39 ;
  154. return( c );
  155.  
  156. }
  157.  
  158.  
  159. asc2b( c )
  160.  
  161. char c ;
  162.  
  163. {
  164.  
  165. c = toupper( c );
  166. if(c > '9')c -= 7 ;
  167. c -= '0' ;
  168. return( c );
  169.  
  170. }
  171.  
  172.  
  173.  
  174. cbin(str)
  175.  
  176. char str[];
  177.  
  178. {
  179.  
  180. char k, base, *p ;
  181. int i, n, sign ;
  182.  
  183. p = str ;
  184. while(*p != 0)p++ ;
  185. p-- ;
  186.  
  187. while(*p == ' ' || *p == 0 || *p == '\t')p-- ;
  188. *p = tolower( *p );
  189.  
  190. switch ( *p ) {
  191.     case 'b' : base = 2 ; break ;
  192.     case 'o' : base = 8 ; break ;
  193.     case 'q' : base = 8 ; break ;
  194.     case 'd' : base = 10 ; break ;
  195.     case 'h' : base = 16 ; break ;
  196.     default  : base = 10 ;
  197.     }
  198.  
  199. if(isalpha( *p )) *p = 0 ;
  200.  
  201. for(i = 0 ; str[i] == ' ' || str[i] == '\n' || str[i] == '\t' ; i++ );
  202.  
  203. sign =  1 ;
  204. if(str[i] == '+' || str[i] == '-')
  205.     sign = (str[i++] == '+') ? 1 : -1 ;
  206.  
  207. for(n = 0 ; str[i] >= '0' && str[i] <= b2asc( base - 1 ) ; i++ )
  208.     n = base * n + asc2b( str[i] );
  209.  
  210. return( n * sign );
  211.  
  212. }
  213.  
  214.  
  215.  
  216.  
  217. ctoa( n, s, base )
  218.  
  219. int n ;
  220. char s[], base ;
  221.  
  222. {
  223.  
  224. int i, sign ;
  225.  
  226. if((sign = n) < 0)n = -n ;
  227.  
  228. i = 0 ;
  229. do {
  230.     s[i++] = b2asc( n % base );
  231.    } while(( n /= base ) > 0 );
  232.  
  233. if(sign < 0)s[i++] = '-' ;
  234.  
  235. s[i] = 0 ;
  236.  
  237. reverse( s );
  238.  
  239. }
  240.  
  241.  
  242.  
  243.  
  244.  
  245. binout( word, bits )
  246.  
  247. int word, bits ;
  248.  
  249. {
  250.  
  251. unsigned x,y,z;
  252.  
  253. z = 0x8000 ; /* set highest bit */
  254. while(bits-- != 0)z = z >> 1 ;
  255.  
  256. while(z != 0)
  257. { if((z & word) == 0)putchar( '0' );
  258.   else putchar( '1' );
  259.   z = z >> 1 ;
  260. }
  261.  
  262. }
  263.  
  264.  
  265.  
  266.  
  267.  
  268. nocur()
  269.  
  270. {
  271.  
  272. char *p ;
  273. unsigned z ;
  274.  
  275. p = 0xfc02 ;
  276. z = *p++ ;
  277. z = z & 0x00ff ;
  278. z += (*p << 8);
  279. p = z ; *p = ' ' ;
  280.  
  281. }
  282.  
  283.  
  284.